#pragma once
#include "SouthBridge/ICH.h"
#include "Register/MCR.h"

class Trade;
class Dealing;
class IDealingHandler
{
public:
	virtual ~IDealingHandler() = 0 {}
	void OnDealing(Dealing const& dealing)
	{
		DoOnDealing(dealing);
	}

	void OnTrade(Trade const& trade)
	{
		DoOnTrade(trade);
	}
private:
	virtual void DoOnDealing(Dealing const& dealing) = 0;
	virtual void DoOnTrade(Trade const& trade) = 0;
};

class Market;
class IMarketHandler
{
public:
	virtual ~IMarketHandler() = 0 {}
	void OnMarket(Market const& market)
	{
		DoOnMarket(market);
	}
private:
	virtual void DoOnMarket(Market const& market) = 0;
};
